//
// Created by HP on 2022/3/24.
//

#include "yuluoyang.h"

void user_register() {
    printf("请选择你的身份  进行注册操作  输入数字\n");
    printf(" 1-店长\n\n 2-理货员\n\n 3售货员\n\n");
    getchar();
    scanf("%c", &temp0);
    if (temp0 + 0 == 49 || temp0 + 0 == 50 || temp0 + 0 == 51) {
        FILE *fp = fopen("../data/password.csv", "a");
        if (fp == NULL) {
            puts("用户文件打开失败，请检查！");
            exit(1);
        } else {
            printf("请输入用户名");
            char username[20];
            scanf("%s", username);
            printf("请输入密码");
            char password[20];
            scanf("%s", password);
            printf("请确认密码");
            char password01[20];
            scanf("%s", password01);
            if (strcmp(password01, password) != 0) {
                system("cls");
                printf("两次密码不一致\n");
                user_register();
            } else {
                fputs(username, fp);
                fputc(',', fp);
                fputs(password01, fp);
                fputc(',', fp);
                if (temp0 + 0 == 49) {
                    fputc('1', fp);
                    fputc('\n', fp);
                    printf("注册成功");
                } else if (temp0 == 50) {
                    fputc('2', fp);
                    fputc('\n', fp);
                    printf("注册成功");
                } else if (temp0 == 51) {
                    fputc('3', fp);
                    fputc('\n', fp);
                    printf("注册成功");
                }

            }
        }
        yousee_2();
    } else {
        system("cls");
        printf("请认真操作 \n");
        user_register();
    }

}

void yousee_2() {
    printf("即将跳转 请进行选择 0-退出 1-登陆 2-重新注册");
    int temp;
    scanf("%d", &temp);
    switch (temp) {
        case 0:
            exit(0);
            break;
        case 1:
            user_login(NULL, NULL);
            break;
        case 2:
            user_register();
            break;
        default: {
            system("cls");
            yousee_2();
        }
    }
}

void getPassword(char password[]) {
    //int i;
    scanf("%s", password);
    /*
    for (i = 0; (password[i] = (char) getch()) != '\r'; ++i) {
        putchar('*');
    }
    password[i] = '\0';
     */
    printf("\n");
}//隐式的输入密码

//登录界面
void user_login(char *username, char *password) {
    bool isNotExist = false;
    //system("cls");
    username = (char *) malloc(sizeof(char) * 20);
    password = (char *) malloc(sizeof(char) * 20);
    printf("请选择你的身份  进行登录操作  输入数字\n");
    printf(" 1-店长\n\n 2-理货员\n\n 3售货员\n\n");
    // getchar();
    scanf("%c", &temp0);
    if (temp0 + 0 == 49 || temp0 + 0 == 50 || temp0 + 0 == 51) {
        FILE *fp;
        fp = fopen("../data/password.csv", "r");
        puts("=========== 登录 ============");
        getchar();//有点小问题
        printf("用户名：");
        gets(username);
        // printf("%s",username);
        printf("密码：");
        getPassword(password);
        if (fp == NULL) {
            printf("文件打开失败\n");
            exit(-1);
        } else {
            char user[50];
            while (fgets(user, 50, fp) != NULL) {
                //printf("biaoji");
                unsigned int tail = strlen(user) - 1;
                if (user[tail] == '\n') {
                    user[tail] = '\0';
                }
                //printf("%d",user.dat[tail-1]);//测试
                //  bool isNotExist = true;
                if (strcmp(username, strtok(user, ",")) == 0) {
                    isNotExist = false;
                    //printf("标记");
                    char a[10];
                    if (strcmp(password, strtok(NULL, ",")) == 0) {
                        // printf("biaokji");
                        //isNotExist=true;
                        // 如果用户名和密码都正确，则登录成功
                        // signInStatus = true;
                        if (user[tail - 1] + 0 == 49 && temp0 + 0 == 49) {
                            isNotExist = true;
                            printf("登陆成功 即将进入管理员界面");
                            system("pause");
                            Admin();
                        } else if (user[tail - 1] + 0 == 50 && temp0 + 0 == 50) {
                            isNotExist = true;
                            printf("登陆成功 即将进入理货员界面");
                            system("pause");
                            tally();

                        } else if (user[tail - 1] + 0 == 51 && temp0 + 0 == 51) {
                            isNotExist = true;
                            printf("登陆成功 即将进入售货员界面");
                            system("pause");
                            sale();
                        } else {
                            printf("身份错误 请重新输入");
                            user_login(NULL, NULL);
                        }
                    }
                }
            }
            if (isNotExist == false) {
                system("cls");
                puts("密码错误！\n");
                //system("pause");

                printf("请选择接下来的操作 1-重新输入 2-注册账号\n");
                char temp1;
                scanf("%c", &temp1);
                if (temp1 + 0 == 49) {
                    system("cls");
                    user_login(NULL, NULL);
                } else if (temp1 + 0 == 50) {
                    user_register();
                } else {
                    system("cls");
                    printf("请认真操作 1-重新输入 2-注册账号\n");
                    user_login(NULL, NULL);
                }
            }
            //printf("标记01");
            fclose(fp);
        }
    } else {
        //printf("请认真操作 \n");
        //system("pause");
        system("cls");
        printf("请认真操作 \n");
        user_login(NULL, NULL);//...........................
    }
}
//注册账号

//第一份界面
void uesr_gate() {

    char p;
    scanf("%c", &p);
    if (p + 0 == 49) {
        printf("请进行登录操作");
        user_login(NULL, NULL);//..................................
    } else if (p + 0 == 48) {
        printf("请进行注册操作");
        user_register();
    } else {
        //system("pause");
        system("cls");
        printf("请认真操作 yes-1 no-0\n");
        uesr_gate();
    }
}

int main() {
    FILE *fp;
    fp = fopen("../data/password.csv", "a");
    if (fp == NULL) {
        printf("文件打开失败");
        exit(-1);
    }
    fclose(fp);
    printf("请告诉我们您是否拥有账号，yes-1 no-0\n");
    uesr_gate();
    // fclose(fp);
    return 0;
}
